The present invention generally relates to processing systems, and more particularly to a processing system having multiple processing units, and a method for handling job signals in such a processing system.
Many conventional central processing systems, such as the APZ processing system in the known AXE Digital Switching System from Telefonaktiebolaget LM Ericsson, are built around a single processing unit, referred to as an execution pipeline in the AXE system. However, central processing systems based on a single processing unit have limitations with regard to capacity.
One way of increasing the processing capacity is to build the processing system as a multiprocessor system, i.e. a processing system with multiple processors or processing units operating in parallel. In conventional multiprocessing systems, each processing unit processes an input signal to execute a corresponding sequence of instructions, one input signal being assigned to each processing unit at a time.
In a so-called superscalar processor, which explores fine grained parallelism found between neighboring instructions, the functional units within the processor are arranged to simultaneously execute several instructions in parallel.
However, there is still a general demand for even more efficient processing systems.
The present invention constitutes a further development of the prior art multiprocessing system.
The invention is directed towards a multiprocessing system adapted for speculative execution of jobs. In a multiprocessing system, the processing units independently execute different jobs in parallel. However, at all times during parallel execution of jobs in a processing system adapted for speculative execution, only one processing unit has commit priority and is allowed to execute its current job non-speculatively, performing write back to the memory system and committing signal sendings. Jobs in the other processing units are executed speculatively and may be flushed if dependencies are detected.
During development of such a processing system, a particular problem was encountered: If the job with commit priority has a longer execution time than the other speculative jobs, the speculatively executing processing units have completed execution of their assigned jobs long before completion of the commit job. The speculatively executed jobs then have to wait until the commit job has been executed to completion so that one of the speculatively executed jobs can get commit priority. This generally means that the speculatively executing processing units simply wait for commit priority and valuable execution time is wasted, severely degrading the performance of the processing system.
Therefore, it is a general object of the present invention to provide a more flexible and efficient speculative multiprocessing system as well as a more efficient method for handling job signals in such a multiprocessing system.
It is another object of the invention to provide a job queue for use in a multiprocessing system.
These and other objects are met by the invention as defined by the accompanying patent claims.
The general idea according to the invention is based on assigning, for at least one processing unit in the multiprocessing system, a first job signal to the processing unit for speculative execution of a corresponding first job, assigning a further job signal to the processing unit for speculative execution of a corresponding further job, and initiating speculative execution of said further job when the processing unit has completed speculative execution of the first job. If desirable, even more job signals may be assigned to the processing unit for speculative execution, execution of the corresponding jobs being initiated as soon as the processing unit has completed speculative execution of the previously assigned job. The processing unit with commit priority may also be assigned a further job signal, the execution of which is initiated as soon as the commit job has been completed.
By assigning multiple job signals for speculative execution by the processing units, the effects of variations in execution time between jobs are neutralized or at least greatly reduced, and the overall performance of the processing system is substantially improved since the processing units are allowed to execute a plurality of jobs speculatively while waiting for commit priority.
In general, the protocol needed for assigning job signals to the processing units, keeping track of the job signals and handling the commit priority is managed by a job signal queue in combination with appropriate control software or hardware.
In order to identify a job signal, its corresponding job or the results thereof in the operation of the processing system, each job signal is associated with an identifier. The identifier may be in the form of a pointer to the storage position of the corresponding job signal in the job signal queue. Alternatively, the identifier comprises a unit label representing the identity of the processing unit to which the job signal is assigned, and a job-signal distinguishing label representing the identity the job signal is given in the processing unit. In a processing system adapted for speculative execution, the results of speculatively executed jobs are temporarily stored in a write queue arrangement, waiting to be committed. According to the invention, when a speculatively executed job gets commit priority the results of that job are retrieved by means of the identifier.
The invention offers the following advantages:
The overall performance of the processing system is substantially improved;
Flexible and efficient speculative execution is provided; and
The effects of variations in execution time between jobs are neutralized.
Other advantages offered by the present invention will be appreciated upon reading of the below description of the embodiments of the invention.